/*
 * @(#)TextMethodsEnglishRIP.java	Robert Denda&Didier Gutacker
 */

/** 
 *
 * @author 	Robert Denda&Didier Gutacker
 * @version     1.1, 06.09.97
 * @see TextMethods
 * @see TextMethodsEnglish
 * @see TextMethodsEnglishDVMRP
 */

public class TextMethodsEnglishRIP extends TextMethodsEnglish {
  TextMethodsEnglishRIP() {
    super();
    buttonPanel_disableNodeButtonText = new String("stop Node");
    buttonPanel_enableNodeButtonText = new String("start Node");
    appletText = new String( "Multicast Routing Algorithms" );
    frameTitle = new String( "Simulation of RIP Routing Algorithms" );
    multicastPacketText = new String( "DataPacket" );
    menuBar_editButton_updateSenderText1 = new String("PeriodicUpdate on");
    menuBar_editButton_updateSenderText2 = new String("PeriodicUpdate off");
    infoText = new String("Simulation of RIP Routing Algorithms\n\n" +
			   "This simulation visualizes and simulates the routing\n" +
			   "algorithm ( RIP ) v2 as utilized by the internet.\n" + 
			   "It is a Distance Vector Routing Protocol.\n\n" +
                           "(c) 1997 by Didier Gutacker, University of Mannheim, Germany\n" );

    helpText1 = new String( "Help for RIP-Routing-Simulation" );

    helpText2 = new String( "This simulation shows the creation of the routingtable\n"
			   +"on the one hand and the routing of datapackets through\n"
			   +"the network on the other hand.\n\n"
                           +"A description of the buttons and tags follows :\n\n"
			   +"Menu Window : New : clean network\n"
			   +"              End : close the simulationwindow\n\n"
			   +"Menu Edit   : choose Simulationspeed\n"
			   +"              switch to Language\n"
                           +"              Periodic RoutingTable updates on / off\n"
			   +"              enable speech : as it says - audio support\n"
			   +"              (not implemented yet !!!!)\n"
			   +"              start demo : start demo-mode\n\n"
			   +"Menu Help   : About : about this simulation\n"
			   +"              Help : this window\n\n"
			   +"Button add Node      : add node\n\n"
			   +"Button remove Node   : remove choosen node\n\n"
			   +"Button inspect Node  : show routingtable of choosen node\n"
			   +"Button add Link      : add link between the two choosen nodes\n"
			   +"Button remove Link   : remove choosen link\n\n"
                           +"Button start sending : start sending Datapackets between the two\n"
                           +"                       choosen nodes\n\n"
			   +"Button stop sending  : stop choosen sender\n\n"
                           +"Button continue      : resume simulation\n\n"
			   +"Button pause         : suspend simulation\n\n");


    demoGreetings = 
      new String(   "Welcome to a demonstration of RIP routing algorithms.\n\n"
		  + "This demo will explain the Distance Vector Routing Protocol"
		  + "RIP v2\nas used by the internet.\n\n" 
		  + "At any point of this demonstration, you can interact and\n"
		  + "thereby change the behaviour of the simulated network\n"
		  + "architecture.\n\n"
		  + "Please press 'Okay' to start the demo.\n" );
    demoPart1 =
      new String(   "Let's pause here for a second.  You have just seen how\n" 
		  + "the two Nodes \"Node 0\" and \"Node 1\" got connected\n"
		  + "via \"link 0\".  When getting connected to a new link, \n"
		  + "a node informs the node on the other end of the link about\n"
		  + "its existence.  This was the first (blue) \"routing table\n"
		  + "update\" packet.  Then, it sends a (magenta) \"routing\n"
		  + "table request\" packet, indicating that it wants to be\n"
		  + "informed about other nodes in the network.  Upon receiving\n"
		  + "a new route, the router updates its routing table accor-\n"
		  + "dingly and sends a (blue) \"routing table update\" packet\n"
		  + "to all neighbours (in this case, there is only one).\n\n"
		  + "Note that the routers use the \"poison reverse\" technique.\n"
		  + "When applying the \"poison reverse\" technique, entries in\n"
		  + "a (blue) \"routing table update\" packet that have the same\n"
                  + "link as their next hop interface via which the \"routing\n"
		  + "table update\" is sent will lie about their real distance to\n"
		  + "the destination node by adding \"infinity\" to the metric.\n"
		  + "This is needed to minimize the risk of \"counting-to-\n"
                  + "infinity loops\".\n\n"
                  + "We will proceed now and add some more nodes and links.  Feel\n"
                  + "free to inspect the nodes' routing tables at any time.\n\n"
		  + "Please press 'Okay' to continue the demo.\n" );
 
    demoPart2 =
      new String(   "The nodes 2,3 and 4 were added afterwards and connected by links\n"
                  + "Then you saw \"Node 0\" sending datapackets to \"Node 3\"\n"
                  + "and how the datapackets are routed only on the shortest path.\n\n"
                  + "Now, please observe how the nodes learn the new net topology via\n"
		  + "routing table updates when an new node is added an connected to\n"
                  + "the net. You may do this by looking at the routing table of \"Node 2\".\n"
                  + "Be aware of that after a short break another link will be added.\n\n"
		  + "Please press 'Okay' to continue.\n" );
    demoPart3 =
      new String(   "Now, \"Node 0\" will send datapackets to \"Node 5\".\n"
		  + "Note how the forwarding of the datapackets works on the\n"
                  + "shortest paths.\n\n" 
		  + "Please press 'Okay' to continue.\n" );
    demoPart4 =
      new String(   "In the following, the direct link between \"Node 2\" and \"Node 5\"\n"
                  + "will be deleted to simulate the case of a \"Broken Link\".\n"
		  + "Now, the net learns the new shortest paths as you can see in the\n"
                  + "routing table window of \"Node 0\".\n\n"
		  + "Please press 'Okay' to continue.\n" );
     demoPart5 =
      new String(   "Now, \"Node 0\" will send datapackets to \"Node 5\" again.\n " 
                  + "Note the difference between the old and the new routing path.\n\n"
		  + "Please press 'Okay' to continue.\n" );

    demoPart6 =
      new String(   "When the \"Broken Link problem\" is resolved the network changes its\n"
		  + "structure immediately.\n\n"
		  + "Please press 'Okay' to continue.\n" );
    demoEnd =
      new String(   "The demonstration of RIP v2 is now finished.\n\n"
		  + "You may continue to extend, restructure and inspect the\n"
                  + "network.\n\n"
		  + "Please press 'Okay' to continue.\n" );

    removedText = new String( "removed" );
    /* receivedPruningPacketText = new String( "received pruning message" );
    receivedGraftingPacketText = new String( "received grafting message" );
    receivedGraftingPacketAckText = new String( "received grafting acknowledgment" );*/
    viaText = new String( "via" );
    networkFinishUpText = new String( "stopping network activity, please wait ..." );
    networkFinishedText = new String( "network activity stopped" );

  } // TextMethodsEnglish.TextMethodsEnglish
} // TextMethodsEnglish
